package com.xiukelai.springboot.base;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Service层工具类
 *
 * @author lixueju
 * @since 2019/3/14 10:03
 */
public class ServiceUtil {
    private static final Logger LOGGER = LoggerFactory.getLogger(ServiceUtil.class);
    /**
     * Service统一返回方法
     * 成功通用返回方法
     *
     * @param data 需要返回的数据对象
     * @return 统一返回数据包装类型ResultData
     */
    public static <T> ResultData<T> callbackSuccess(T data) {
        return new ResultData<T>(data);
    }

    /**
     * Service统一返回方法
     * 失败通用返回方法（适用于自定义描述信息，约定好的信息，参数请传递枚举对象）
     *
     * @param message 操作失败的描述信息
     * @return 统一返回数据包装类型ResultData
     */
    public static <T> ResultData<T> callbackFail(String message) {
        return new ResultData<T>(ResultDataEnum.FAIL.code(), message, null);
    }

    /**
     * Service统一返回方法
     *
     * @param resultDataEnum 返回数据状态的枚举
     * @param data           需返回的数据对象
     * @return 统一返回数据包装类型ResultData
     */
    public static <T> ResultData<T> callback(ResultDataEnum resultDataEnum, T data) {
        return new ResultData<T>(resultDataEnum.code(), resultDataEnum.desc(), data);
    }

    /**
     * Service统一返回方法
     *
     * @param resultDataEnum 返回数据状态的枚举
     * @return 统一返回数据包装类型ResultData
     */
    public static <T> ResultData<T> callback(ResultDataEnum resultDataEnum) {
        return callback(resultDataEnum, null);
    }



}
